
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_Hans">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Organization of the Django Project &#8212; Django 3.2.11.dev 文档</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="next" title="Django&#39;s security policies" href="security.html" />
    <link rel="prev" title="邮件列表" href="mailing-lists.html" />



 
<script src="../templatebuiltins.js"></script>
<script>
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../ref/templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);</script>

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Django 3.2.11.dev 文档</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Module index" href="../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="mailing-lists.html" title="邮件列表">previous</a>
     |
    <a href="index.html" title="Django internals" accesskey="U">up</a>
   |
    <a href="security.html" title="Django&#39;s security policies">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="internals-organization">
            
  <div class="section" id="s-organization-of-the-django-project">
<span id="organization-of-the-django-project"></span><h1>Organization of the Django Project<a class="headerlink" href="#organization-of-the-django-project" title="永久链接至标题">¶</a></h1>
<div class="section" id="s-principles">
<span id="principles"></span><h2>Principles<a class="headerlink" href="#principles" title="永久链接至标题">¶</a></h2>
<p>The Django Project is managed by a team of volunteers pursuing three goals:</p>
<ul class="simple">
<li>Driving the development of the Django Web Framework,</li>
<li>Fostering the ecosystem of Django-related software,</li>
<li>Leading the Django community in accordance with the values described in the
<a class="reference external" href="https://www.djangoproject.com/conduct/">Django Code of Conduct</a>.</li>
</ul>
<p>The Django Project isn't a legal entity. The <a class="reference external" href="https://www.djangoproject.com/foundation/">Django Software Foundation</a>, a
non-profit organization, handles financial and legal matters related to the
Django Project. Other than that, the Django Software Foundation lets the
Django Project manage the development of the Django framework, its ecosystem
and its community.</p>
</div>
<div class="section" id="s-mergers">
<span id="s-mergers-team"></span><span id="mergers"></span><span id="mergers-team"></span><h2>Mergers<a class="headerlink" href="#mergers" title="永久链接至标题">¶</a></h2>
<div class="section" id="s-role">
<span id="role"></span><h3>Role<a class="headerlink" href="#role" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#mergers-team">Mergers</a> are a small set of people who merge pull requests to the <a class="reference external" href="https://github.com/django/django/">Django Git
repository</a>.</p>
</div>
<div class="section" id="s-prerogatives">
<span id="prerogatives"></span><h3>Prerogatives<a class="headerlink" href="#prerogatives" title="永久链接至标题">¶</a></h3>
<p>Mergers hold the following prerogatives:</p>
<ul class="simple">
<li>Merging any pull request which constitutes a <a class="reference external" href="https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminology">minor change</a> (small enough
not to require the use of the <a class="reference external" href="https://github.com/django/deps/blob/main/final/0001-dep-process.rst">DEP process</a>). A Merger must not merge a
change primarily authored by that Merger, unless the pull request has been
approved by:<ul>
<li>another Merger,</li>
<li>a technical board member,</li>
<li>a member of the <a class="reference external" href="https://www.djangoproject.com/foundation/teams/#triage-review-team">triage &amp; review team</a>, or</li>
<li>a member of the <a class="reference external" href="https://www.djangoproject.com/foundation/teams/#security-team">security team</a>.</li>
</ul>
</li>
<li>Initiating discussion of a minor change in the appropriate venue, and request
that other Mergers refrain from merging it while discussion proceeds.</li>
<li>Requesting a vote of the technical board regarding any minor change if, in
the Merger's opinion, discussion has failed to reach a consensus.</li>
<li>Requesting a vote of the technical board when a <a class="reference external" href="https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminology">major change</a> (significant
enough to require the use of the <a class="reference external" href="https://github.com/django/deps/blob/main/final/0001-dep-process.rst">DEP process</a>) reaches one of its
implementation milestones and is intended to merge.</li>
</ul>
</div>
<div class="section" id="s-membership">
<span id="membership"></span><h3>Membership<a class="headerlink" href="#membership" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#technical-board-team">The technical board</a> selects <a class="reference external" href="https://www.djangoproject.com/foundation/teams/#mergers-team">Mergers</a> as necessary to maintain their number
at a minimum of three, in order to spread the workload and avoid over-burdening
or burning out any individual Merger. There is no upper limit to the number of
Mergers.</p>
<p>It's not a requirement that a Merger is also a Django Fellow, but the Django
Software Foundation has the power to use funding of Fellow positions as a way
to make the role of Merger sustainable.</p>
<p>The following restrictions apply to the role of Merger:</p>
<ul class="simple">
<li>A person must not simultaneously serve as a member of the technical board. If
a Merger is elected to the technical board, they shall cease to be a Merger
immediately upon taking up membership in the technical board.</li>
<li>A person may serve in the roles of Releaser and Merger simultaneously.</li>
</ul>
<p>The selection process, when a vacancy occurs or when the technical board deems
it necessary to select additional persons for such a role, occur as follows:</p>
<ul class="simple">
<li>Any member in good standing of an appropriate discussion venue, or the Django
Software Foundation board acting with the input of the DSF's Fellowship
committee, may suggest a person for consideration.</li>
<li>The technical board considers the suggestions put forth, and then any member
of the technical board formally nominates a candidate for the role.</li>
<li>The technical board votes on nominees.</li>
</ul>
<p>Mergers may resign their role at any time, but should endeavor to provide some
advance notice in order to allow the selection of a replacement. Termination of
the contract of a Django Fellow by the Django Software Foundation temporarily
suspends that person's Merger role until such time as the technical board can
vote on their nomination.</p>
<p>Otherwise, a Merger may be removed by:</p>
<ul class="simple">
<li>Becoming disqualified due to election to the technical board.</li>
<li>Becoming disqualified due to actions taken by the Code of Conduct committee
of the Django Software Foundation.</li>
<li>A vote of the technical board.</li>
</ul>
</div>
</div>
<div class="section" id="s-releasers">
<span id="s-releasers-team"></span><span id="releasers"></span><span id="releasers-team"></span><h2>Releasers<a class="headerlink" href="#releasers" title="永久链接至标题">¶</a></h2>
<div class="section" id="s-id1">
<span id="id1"></span><h3>Role<a class="headerlink" href="#id1" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#releasers-team">Releasers</a> are a small set of people who have the authority to upload packaged
releases of Django to the <a class="reference external" href="https://pypi.org/project/Django/">Python Package Index</a>, and to the
<a class="reference external" href="https://www.djangoproject.com/download/">djangoproject.com</a> website.</p>
</div>
<div class="section" id="s-id2">
<span id="id2"></span><h3>Prerogatives<a class="headerlink" href="#id2" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#releasers-team">Releasers</a> <a class="reference internal" href="howto-release-django.html"><span class="doc">build Django releases</span></a> and
upload them to the <a class="reference external" href="https://pypi.org/project/Django/">Python Package Index</a>, and to the <a class="reference external" href="https://www.djangoproject.com/download/">djangoproject.com</a>
website.</p>
</div>
<div class="section" id="s-id3">
<span id="id3"></span><h3>Membership<a class="headerlink" href="#id3" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#technical-board-team">The technical board</a> selects <a class="reference external" href="https://www.djangoproject.com/foundation/teams/#releasers-team">Releasers</a> as necessary to maintain their number
at a minimum of three, in order to spread the workload and avoid over-burdening
or burning out any individual Releaser. There is no upper limit to the number
of Releasers.</p>
<p>It's not a requirement that a Releaser is also a Django Fellow, but the Django
Software Foundation has the power to use funding of Fellow positions as a way
to make the role of Releaser sustainable.</p>
<p>A person may serve in the roles of Releaser and Merger simultaneously.</p>
<p>The selection process, when a vacancy occurs or when the technical board deems
it necessary to select additional persons for such a role, occur as follows:</p>
<ul class="simple">
<li>Any member in good standing of an appropriate discussion venue, or the Django
Software Foundation board acting with the input of the DSF's Fellowship
committee, may suggest a person for consideration.</li>
<li>The technical board considers the suggestions put forth, and then any member
of the technical board formally nominates a candidate for the role.</li>
<li>The technical board votes on nominees.</li>
</ul>
<p>Releasers may resign their role at any time, but should endeavor to provide
some advance notice in order to allow the selection of a replacement.
Termination of the contract of a Django Fellow by the Django Software
Foundation temporarily suspends that person's Releaser role until such time as
the technical board can vote on their nomination.</p>
<p>Otherwise, a Releaser may be removed by:</p>
<ul class="simple">
<li>Becoming disqualified due to actions taken by the Code of Conduct committee
of the Django Software Foundation.</li>
<li>A vote of the technical board.</li>
</ul>
</div>
</div>
<div class="section" id="s-technical-board">
<span id="s-id4"></span><span id="technical-board"></span><span id="id4"></span><h2>Technical board<a class="headerlink" href="#technical-board" title="永久链接至标题">¶</a></h2>
<div class="section" id="s-id5">
<span id="id5"></span><h3>Role<a class="headerlink" href="#id5" title="永久链接至标题">¶</a></h3>
<p>The technical board is a group of experienced contributors who:</p>
<ul class="simple">
<li>provide oversight of Django's development and release process,</li>
<li>assist in setting the direction of feature development and releases,</li>
<li>take part in filling certain roles, and</li>
<li>have a tie-breaking vote when other decision-making processes fail.</li>
</ul>
<p>Their main concern is to maintain the quality and stability of the Django Web
Framework.</p>
</div>
<div class="section" id="s-id6">
<span id="id6"></span><h3>Prerogatives<a class="headerlink" href="#id6" title="永久链接至标题">¶</a></h3>
<p>The technical board holds the following prerogatives:</p>
<ul class="simple">
<li>Making a binding decision regarding any question of a technical change to
Django.</li>
<li>Vetoing the merging of any particular piece of code into Django or ordering
the reversion of any particular merge or commit.</li>
<li>Announcing calls for proposals and ideas for the future technical direction
of Django.</li>
<li>Setting and adjusting the schedule of releases of Django.</li>
<li>Selecting and removing mergers and releasers.</li>
<li>Participating in the removal of members of the technical board, when deemed
appropriate.</li>
<li>Calling elections of the technical board outside of those which are
automatically triggered, at times when the technical board deems an election
is appropriate.</li>
<li>Participating in modifying Django's governance (see
<a class="reference internal" href="#organization-change"><span class="std std-ref">Changing the organization</span></a>).</li>
<li>Declining to vote on a matter the technical board feels is unripe for a
binding decision, or which the technical board feels is outside the scope of
its powers.</li>
<li>Taking charge of the governance of other technical teams within the Django
open-source project, and governing those teams accordingly.</li>
</ul>
</div>
<div class="section" id="s-id7">
<span id="id7"></span><h3>Membership<a class="headerlink" href="#id7" title="永久链接至标题">¶</a></h3>
<p><a class="reference external" href="https://www.djangoproject.com/foundation/teams/#technical-board-team">The technical board</a> is an elected group of five experienced contributors
who demonstrate:</p>
<ul class="simple">
<li>A history of technical contributions to Django or the Django ecosystem. This
history must begin at least 18 months prior to the individual's candidacy for
the technical board.</li>
<li>A history of participation in Django's development outside of contributions
merged to the <a class="reference external" href="https://github.com/django/django/">Django Git repository</a>. This may include, but is not
restricted to:<ul>
<li>Participation in discussions on the <a class="reference internal" href="mailing-lists.html#django-developers-mailing-list"><span class="std std-ref">django-developers</span></a> mailing list or
the <a class="reference external" href="https://forum.djangoproject.com/">Django forum</a>.</li>
<li>Reviewing and offering feedback on pull requests in the Django source-code
repository.</li>
<li>Assisting in triage and management of the Django bug tracker.</li>
</ul>
</li>
<li>A history of recent engagement with the direction and development of Django.
Such engagement must have occurred within a period of no more than two years
prior to the individual's candidacy for the technical board.</li>
</ul>
<p>A new board is elected after each release cycle of Django. The election process
works as follows:</p>
<ol class="arabic simple">
<li>The technical board direct one of its members to notify the Secretary of the
Django Software Foundation, in writing, of the triggering of the election,
and the condition which triggered it. The Secretary post to the appropriate
venue -- the <a class="reference internal" href="mailing-lists.html#django-developers-mailing-list"><span class="std std-ref">django-developers</span></a> mailing list and the <a class="reference external" href="https://forum.djangoproject.com/">Django forum</a> to
announce the election and its timeline.</li>
<li>As soon as the election is announced, the <a class="reference external" href="https://www.djangoproject.com/foundation/#board">DSF Board</a> begin a period of
voter registration. All <a class="reference external" href="https://www.djangoproject.com/foundation/individual-members/">individual members of the DSF</a> are automatically
registered and need not explicitly register. All other persons who believe
themselves eligible to vote, but who have not yet registered to vote, may
make an application to the DSF Board for voting privileges. The voter
registration form and roll of voters is maintained by the DSF Board. The DSF
Board may challenge and reject the registration of voters it believes are
registering in bad faith or who it believes have falsified their
qualifications or are otherwise unqualified.</li>
<li>Registration of voters close one week after the announcement of the
election. At that point, registration of candidates begin. Any qualified
person may register as a candidate. The candidate registration form and
roster of candidates are maintained by the DSF Board, and candidates must
provide evidence of their qualifications as part of registration. The DSF
Board may challenge and reject the registration of candidates it believes do
not meet the qualifications of members of the Technical Board, or who it
believes are registering in bad faith.</li>
<li>Registration of candidates close one week after it has opened. One week
after registration of candidates closes, the Secretary of the DSF publish
the roster of candidates to the <a class="reference internal" href="mailing-lists.html#django-developers-mailing-list"><span class="std std-ref">django-developers</span></a> mailing list and the
<a class="reference external" href="https://forum.djangoproject.com/">Django forum</a>, and the election begin. The DSF Board provide a voting form
accessible to registered voters, and is the custodian of the votes.</li>
<li>Voting is by secret ballot containing the roster of candidates, and any
relevant materials regarding the candidates, in a randomized order. Each
voter may vote for up to five candidates on the ballot.</li>
<li>The election conclude one week after it begins. The DSF Board then tally the
votes and produce a summary, including the total number of votes cast and
the number received by each candidate. This summary is ratified by a
majority vote of the DSF Board, then posted by the Secretary of the DSF to
the <a class="reference internal" href="mailing-lists.html#django-developers-mailing-list"><span class="std std-ref">django-developers</span></a> mailing list and the Django Forum. The five
candidates with the highest vote totals are immediately become the new
technical board.</li>
</ol>
<p>A member of the technical board may be removed by:</p>
<ul class="simple">
<li>Becoming disqualified due to actions taken by the Code of Conduct committee
of the Django Software Foundation.</li>
<li>Determining that they did not possess the qualifications of a member of the
technical board. This determination must be made jointly by the other members
of the technical board, and the <a class="reference external" href="https://www.djangoproject.com/foundation/#board">DSF Board</a>. A valid determination of
ineligibility requires that all other members of the technical board and all
members of the DSF Board vote who can vote on the issue (the affected person,
if a DSF Board member, must not vote) vote &quot;yes&quot; on a motion that the person
in question is ineligible.</li>
</ul>
</div>
</div>
<div class="section" id="s-changing-the-organization">
<span id="s-organization-change"></span><span id="changing-the-organization"></span><span id="organization-change"></span><h2>Changing the organization<a class="headerlink" href="#changing-the-organization" title="永久链接至标题">¶</a></h2>
<p>Changes to this document require the use of the <a class="reference external" href="https://github.com/django/deps/blob/main/final/0001-dep-process.rst">DEP process</a>, with
modifications described in <a class="reference external" href="https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#changing-this-governance-process">DEP 0010</a>.</p>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Organization of the Django Project</a><ul>
<li><a class="reference internal" href="#principles">Principles</a></li>
<li><a class="reference internal" href="#mergers">Mergers</a><ul>
<li><a class="reference internal" href="#role">Role</a></li>
<li><a class="reference internal" href="#prerogatives">Prerogatives</a></li>
<li><a class="reference internal" href="#membership">Membership</a></li>
</ul>
</li>
<li><a class="reference internal" href="#releasers">Releasers</a><ul>
<li><a class="reference internal" href="#id1">Role</a></li>
<li><a class="reference internal" href="#id2">Prerogatives</a></li>
<li><a class="reference internal" href="#id3">Membership</a></li>
</ul>
</li>
<li><a class="reference internal" href="#technical-board">Technical board</a><ul>
<li><a class="reference internal" href="#id5">Role</a></li>
<li><a class="reference internal" href="#id6">Prerogatives</a></li>
<li><a class="reference internal" href="#id7">Membership</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changing-the-organization">Changing the organization</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="mailing-lists.html"
                        title="上一章">邮件列表</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="security.html"
                        title="下一章">Django's security policies</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/internals/organization.txt"
            rel="nofollow">显示源代码</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>快速搜索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="转向" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">12月 07, 2021</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="mailing-lists.html" title="邮件列表">previous</a>
     |
    <a href="index.html" title="Django internals" accesskey="U">up</a>
   |
    <a href="security.html" title="Django&#39;s security policies">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>